package cn.io0288.blog2;

import cn.io0288.blog2.db.Articles;
import cn.io0288.blog2.model.Article;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;

@WebServlet(name = "UpdateServlet", value = "/update/*")
public class UpdateServlet extends HttpServlet {
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        response.setCharacterEncoding("utf-8");
        request.setCharacterEncoding("utf-8");
        PrintWriter pw = response.getWriter();
        HttpSession session = request.getSession();
        String[] route = request.getRequestURI().split("/");

        // 是否登录
        if (session.getAttribute("uemail") == null) {
            response.sendRedirect(request.getContextPath() + "/login");
            return;
        }

        String aid = "0";
        if (route[1].equals("update") && route.length > 2) aid = route[2];

        Article a = Articles.getArticle(Integer.parseInt(aid));
        System.out.println(aid);

        if (a == null) {
            request.setAttribute("msg", "文章不存在");
            request.getRequestDispatcher(request.getContextPath() + "/Home").forward(request, response);
        } else {
            Map<String, String[]> p = request.getParameterMap();
            System.out.println("正在修改文章:" + a.title + a.title2);
            Article b = new Article(p);

            Articles.setArticle(b);

            request.setAttribute("page", "views/article");
            request.setAttribute("article", Articles.getArticle(Integer.parseInt(aid)));
            request.getRequestDispatcher(request.getContextPath() + "/index.jsp").forward(request, response);
        }
    }

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        response.setCharacterEncoding("utf-8");
        PrintWriter pw = response.getWriter();
        HttpSession session = request.getSession();
        String[] route = request.getRequestURI().split("/");

        // 是否登录
        if (session.getAttribute("uemail") == null) {
            response.sendRedirect(request.getContextPath() + "/login");
            return;
        }

        String aid = "0";
        if (route[1].equals("update") && route.length > 2) aid = route[2];

        Article a = Articles.getArticle(Integer.parseInt(aid));
        System.out.println(aid);

        // 是否登录
        if (session.getAttribute("uemail") == null) {
            response.sendRedirect(request.getContextPath() + "/login");
            return;
        }
        // 是否存在
        if (a == null) {
            request.setAttribute("msg", "文章不存在");
            request.getRequestDispatcher(request.getContextPath() + "/index.jsp").forward(request, response);
        } else {
            System.out.println("准备修改文章:" + a.title + a.title2);

            request.setAttribute("page", "views/insert");
            request.setAttribute("action", "/update/" + a.aid);
            request.setAttribute("article", a);
            request.getRequestDispatcher(request.getContextPath() + "/index.jsp").forward(request, response);
        }
    }
}